package xyz.fefine;

/**
 * Created by feng_ on 2016/9/9.
 * 存放变量及其值
 */
public interface Enviorment {

    void put(String name, Object value);
    Object get(String name);
    void setOuter(Enviorment outer);
    void putNew(String name,Object value);
    Enviorment where(String name);

    /**
     * 针对于将环境实现为数组的接口
     * @param nest 第几层
     * @param index 数组中的位置
     * @param value 添加的值
     */
    void put(int nest, int index, Object value);

    /**
     * 或许指定位置的值
     * @param nest 第几层的环境
     * @param index 索引
     * @return 返回值
     */
    Object get(int nest, int index);

    Symbols symbols();

}
